operations on vectors